package cn.agiledata.bank.linkbank.service;

import cn.agiledata.bank.linkbank.exception.LinkBankException;
import cn.agiledata.bank.linkbank.logic.payment.BankNetPayRequest;
import cn.agiledata.bank.linkbank.logic.payment.UnsPayRequest;

/**
 * 网上银行支付服务
 * 
 * @author maxianbo
 * 
 */
public interface BankNetPayService extends BankPayService {

    /**
     * 根据支付系统请求和已保存交易的交易编号获取银行网上支付请求
     * 
     * @param unsPayRequest
     *            商户到支付系统的支付请求
     * @param transId
     *            交易编号，给网上银行的订单号
     * @param webRootUrl
     *            web根url
     * @return 银行网上支付请求
     * @throws LinkBankException
     */
    public BankNetPayRequest getBankNetPayRequest(UnsPayRequest unsPayRequest,
            String transId, String webRootUrl) throws LinkBankException;

    /**
     * 判断指定银行代码是否有效，且系统支持对应银行的网上银行
     * 
     * @param bankCode
     *            银行代码
     * @return true if 指定银行代码有效，且系统支持对应银行的网上银行, otherwise false
     */
    public boolean validNetBankCode(String bankCode);
}